package DesignPattern.Proxy.Observer;

import java.util.ArrayList;
import java.util.List;
import java.util.Observable;
import java.util.Observer;

/**
 *被观察者
 * 模拟参品列表，产品出货
 * @Author: Jun
 * @Date: 2018/9/28 21:42
 */
public class ProductList extends Observable {
    private List<String> productList=null;
    private static ProductList instance;
    //构建方法私有化
    private ProductList(){};

    public static ProductList getInstance(){
        if(instance==null){
            instance=new ProductList();
            instance.productList=new ArrayList<String>();
        }
        return instance;
    }

    /**
     * 增加观察者（电商接口）
     * @param observer
     */
    public void addProdutListObserver(Observer observer){
        this.addObserver(observer);
    }

    public void addProduct(String newProduct){
        productList.add(newProduct);
        System.out.println("产品列表新增了产品:"+newProduct);
        this.setChanged();//设置被观察者对象发生了变化
        this.notifyObservers(newProduct);//通知观察者，并传递新产品
    }
}
